package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.WhCounter;
import com.ruoyi.system.domain.params.CustomerCounterListParams;
import com.ruoyi.system.domain.params.SaveCounterParams;
import com.ruoyi.system.domain.vo.*;

/**
 * 货柜Service接口
 *
 * @author ruoyi
 * @date 2023-03-07
 */
public interface IWhCounterService {
    /**
     * 查询货柜
     *
     * @param id 货柜主键
     * @return 货柜
     */
    public WhCounter selectWhCounterById(Integer id);

    /**
     * 查询货柜列表
     *
     * @param whCounter 货柜
     * @return 货柜集合
     */
    public List<WhCounterListVo> selectWhCounterList(WhCounter whCounter);

    /**
     * 新增货柜
     *
     * @param whCounter 货柜
     * @return 结果
     */
    public int insertWhCounter(WhCounter whCounter);

    /**
     * 新增货柜
     * @param params
     * @return
     */
    int saveCounter(SaveCounterParams params);

    /**
     * 修改货柜
     *
     * @param whCounter 货柜
     * @return 结果
     */
    public int updateWhCounter(SaveCounterParams whCounter);

    /**
     * 批量删除货柜
     *
     * @param ids 需要删除的货柜主键集合
     * @return 结果
     */
    public int deleteWhCounterByIds(Integer[] ids);

    /**
     * 删除货柜信息
     *
     * @param id 货柜主键
     * @return 结果
     */
    public int deleteWhCounterById(Integer id);

    /**
     * 客户获取货柜列表
     * @param params
     * @return
     */
    List<CustomerCounterListVo> findCustomerCounter(CustomerCounterListParams params);

    /**
     * 客户查询货柜详情
     * @param id 货柜id
     * @param customerId 客户id
     * @return
     */
    CustomerCounterInfoVo getCustomerCounterInfoById(Integer id, Integer customerId);

    /**
     * 获取货柜编辑详情
     * @param id 货柜id
     * @return
     */
    CounterEditInfoVo getCounterEditInfo(Integer id);

    /**
     * 手机财务、仓管端货柜
     * @param keyword
     * @return
     */
    List<CounterListVo> findCounterList(String keyword);
}
